/****************************************************************************
*                                                                           *
* dxGameMgr.h -- MANAGER PROCESSING GAME                                    *
*                                                                           *
* Copyright (c) Ionescu Marius. All rights reserved(2009).                  *
*                                                                           *
****************************************************************************/

#include <string>

class dxMgr;
class dxText;
class dxCustomVertex;
class dxUtils;
class dxPlane; 
class dxModel;  
class dxLight;
class dxCamera; 
class dxAnimation;
class dxTimer;
class dxInput;
class dxSound;
class dxCustomVertex;
class dxWorldTransformation;
class dxMenu;

class dxGameMgr
{
	public:
		dxGameMgr(void);
		~dxGameMgr(void);
		BOOL getSleep(){return m_bSleep;};
		
		bool init(HWND wndHandle,HINSTANCE hInst);
		void update(void);
		void ToggleControlsDisplay();
		void MoveForwardUp();
		void MoveForwardDown();
		void MoveRight();
		void MoveLeft();
		void MoveUpUp(void);
		void MoveUpDown(void);
		void YawEntityL();
		void YawEntityR();
		void PitchEntityL();
		void PitchEntityR();
		void RollEntityL();
		void RollEntityR();
		void MoveMouseLeft(float value);
		void MoveMouseRight(float value);
		void loadFileX(const std::string &filename);
		void NextAnimationX();
		enum { NOTHING = 0, MENU = 1, GAME = 2, LOSE = 3 };
		
		void MoveShipXL();
		void MoveShipXR();
		void MoveShipYL();
		void MoveShipYR();
		void MoveShipZL();
		void MoveShipZR();
		void MoveShipZR2();
		void MoveShipRotateX();
		void MoveShipRotateX_();
		void MoveShipRotateY();
		void MoveShipRotateY_();
		void MoveShipRotateZ();
		void MoveShipRotateZ_();
		
		void setAnimation(unsigned int x);
		
		BOOL m_bSleep;
		int soundContinue;
		int soundNewGame;
		int soundExit;
		int soundG1;
		int soundG1G2;
		int soundG2;
		int soundG2G3;
		int sunetCurent;

	private:

		dxMgr* dxManager;
		dxText* textManager;
		dxPlane* testSurface;
		dxModel* testModel;
		dxLight* lights;
		dxCamera* camera;
		dxAnimation* animTest;
		dxAnimation* space;
		dxTimer* timer;
		dxInput* input;
		dxSound* sounds;
		dxCustomVertex* cstVertex;
		int soundOne;
		int soundTwo;
		
		
		dxWorldTransformation* dxWorldTransfT;

		dxMenu* menu;
		int active;
};
